package com.ease.component.interfaces {

    /**
     * WizardPanel uses the interface to interact with the wizard.
     */
    public interface IWizard extends IShowLoadingState {
       /**
        * Panel is ready for NEXT or FINISH action.
        *
        * @param ready
        *
        */
       function panelReady(ready:Boolean, panelId:String = null):void;

       /**
        * Wizard can proceed to complete NEXT action
        *
        */
       function proceedNext(panelId:String = null):void;

       /**
        * Wizard can proceed to complete BACK action
        */
       function proceedBack(panelId:String = null):void;

       /**
        * Wizard can proceed to complete FINISH action
        *
        */
       function proceedFinish():void;

       /**
        * Wizard can proceed to complete change path action
        *
        */
       function proceedPathChange():void;

       /**
        * Wizard has to stop perfoming actions
        *
        */
       function stop():void;

       /**
        * For caching the user defined data which will be used in the wizard scope.
        */
       function get userDefinedData():Object;
       function set userDefinedData(value:Object):void;

       function goToPanel(nextPanelId:String):void;

       function enableUI(enable : Boolean) : void;

       /**
        * Disable all path link buttons from a panel
        * @param panelId: Id of the panel from which all the path link buttons will be disabled;
        */
       function disablePathFromCurrentPanel():void;

    }
}
